// 提取对象中的指定属性
export function funPick(obj, keys) {
    const result = {}
    keys.forEach(key => {
        if (obj.hasOwnProperty(key)) {
            result[key] = obj[key]
        }
    })
    return result
}


// 转为 PascalCase（用于路由 name）转大写
export function toPascalCase(str) {
    return str.replace(/(^\w|-\w)/g, match => match.replace('-', '').toUpperCase())
}

// 转为 kebab-case（用于路径） 转小写
export function toKebabCase(str) {
    return str.replace(/[A-Z]/g, letter => `-${letter.toLowerCase()}`)
}

// 转为路径格式
// "UserProfile" -> "/user/profile"
// "User" -> "/user"
// "user" -> "/user"
export function toPathFormat(str) {
    return str
        .replace(/([A-Z])/g, '/$1')     // 将大写字母替换为 "/X"
        .trim().replace(/^\/+|\/+$/g, '') // 去除前后斜杠
        .replace(/^./, c => c.toLowerCase()) // 首字母转小写
        .toLowerCase()                   // 整体转小写
}
